package com.molichuxing.services.infrastructure.service;

import java.util.Map;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.service.RootService;
import com.molichuxing.services.infrastructure.dto.request.create.BlacklistCreateDto;
import com.molichuxing.services.infrastructure.dto.response.BlacklistDto;

/**
 * 
 * @author liyg
 * 黑名单服务
 * 2019-08-15
 * 
 */
public interface BlacklistService extends RootService {

	/**
	 * 获取黑名单列表
	 * 
	 * @param map
	 *            参数
	 *key:name
	 *            String 用户名
	 *key:phone
	 *            String 用户手机号
	 *key:idNumber
	 *            String 身份证号
	 *key:startTime
	 *            LocalDateTime 拉黑开始时间
	 *key:endTime
	 *            LocalDateTime 拉黑结束时间
	 *key:type
	 *            Integer 拉黑方式
	 *key:pageNum
	 *            Integer 当前页
	 *key:pageSize
	 *            Integer 每页显示条数
	 * @return
	 */
	Paged<BlacklistDto> getBlacklistList(Map<String, Object> map);
	
	/**
	 * 获取黑名单详情
	 * @param phone
	 * @return
	 */
	BlacklistDto getBlacklist(String phone);
	
	/**
	 * 获取黑名单详情
	 * @param id
	 * @return
	 */
	BlacklistDto getBlacklist(Integer id);
	/**
	 * 创建黑名单
	 * 
	 * @param createDto
	 * @return
	 */
	Boolean createBlacklist(BlacklistCreateDto createDto);
	
	/**
	 * 移除黑名单
	 * @param idNumber
	 * @return
	 */
	Boolean modifyBlacklist(String idNumber);
	
	/**
	 * 逻辑删除黑名单
	 * 
	 * @param blacklistId
	 *        黑名单id
	 * @param accountId
	 *        操作人id
	 * @param accountAccount
	 *        操作人名称
	 * @return
	 */
	Boolean deleteBlacklist(Integer blacklistId,Integer accountId,String accountAccount);
}
